Method and apparatus for image generation

ABSTRACT

Method and apparatus for image generation from biometric data is disclosed herein. In a described embodiment, the biometric data is in the form of IrisCode and the method comprises constructing a graph of filter responses and bits which define the biometric data; comparing the bits with corresponding bits of reference graphs of a trained database to obtain an optimal graph; updating the filter responses based on the optimal graph; and decompressing the IrisCode based on the updated filter responses to generate an image. The image may be a reconstruction of an original image which is defined by the IrisCode.

FIELD OF THE INVENTION

The present invention relates to a method and apparatus for image generation.

BACKGROUND OF THE INVENTION

There are many types of biometric algorithms presently known in the art. IrisCode is an example of such a biometric algorithm. IrisCode has had great success in biometric markets as a result of its strengths, including high matching speed, predictable false acceptance rate, and robustness against local brightness and contrast variations. A method of generating IrisCode and using the IrisCode features are disclosed in J. G. Daugman, “High confidence visual recognition of persons by a test of statistical independence”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 15, no. 11, pp. 1148-1161, 1993, the contents of which are incorporated herein by reference.

The obtaining of an IrisCode from an original image uses the “lesser than” i.e. “<” and the “greater or equation than” i.e. “≧” operators, thus retaining only the signs of the filter responses as features of biometric templates. This involves applying two-dimensional Gabor filters with zero DC globally to the whole of an original image in a dimensionless polar coordinate system denoted I₀(ρ, φ), where ρ denotes the radial coordinate and φ the angular coordinate. The complex Gabor response is encoded into two bits (h_(Re) and h_(Im)) by using the following inequalities:

$\begin{matrix} {h_{Re} = {{1\mspace{14mu}{if}\mspace{14mu}{{Re}\left( {\int_{\rho}{\int_{\phi}{{I_{0}\left( {\rho,\phi} \right)}{\mathbb{e}}^{{- {({r_{0} - \rho})}^{2}}/\alpha^{2}}{\mathbb{e}}^{{- {({\theta_{o} - \phi})}^{2}}/\beta^{2}}{\mathbb{e}}^{- {{\mathbb{i}\omega}{({\theta_{0} - \phi})}}}\rho{\mathbb{d}\rho}{\mathbb{d}\phi}}}} \right)}} \geq 0}} & (1) \\ {h_{Re} = {{0\mspace{14mu}{if}\mspace{14mu}{{Re}\left( {\int_{\rho}{\int_{\phi}{{I_{0}\left( {\rho,\phi} \right)}{\mathbb{e}}^{{- {({r_{0} - \rho})}^{2}}/\alpha^{2}}{\mathbb{e}}^{{- {({\theta_{o} - \phi})}^{2}}/\beta^{2}}{\mathbb{e}}^{- {{\mathbb{i}\omega}{({\theta_{0} - \phi})}}}\rho{\mathbb{d}\rho}{\mathbb{d}\phi}}}} \right)}} < 0}} & (2) \\ {h_{Im} = {{1\mspace{14mu}{if}\mspace{14mu}{{Im}\left( {\int_{\rho}{\int_{\phi}{{I_{0}\left( {\rho,\phi} \right)}{\mathbb{e}}^{{- {({r_{0} - \rho})}^{2}}/\alpha^{2}}{\mathbb{e}}^{{- {({\theta_{o} - \phi})}^{2}}/\beta^{2}}{\mathbb{e}}^{- {{\mathbb{i}\omega}{({\theta_{o} - \phi})}}}\rho{\mathbb{d}\rho}{\mathbb{d}\phi}}}} \right)}} \geq 0}} & (3) \\ {h_{Im} = {{0\mspace{14mu}{if}\mspace{14mu}{{Im}\left( {\int_{\rho}{\int_{\phi}{{I_{0}\left( {\rho,\phi} \right)}{\mathbb{e}}^{{- {({r_{0} - \rho})}^{2}}/\alpha^{2}}{\mathbb{e}}^{{- {({\theta_{o} - \phi})}^{2}}/\beta^{2}}{\mathbb{e}}^{- {{\mathbb{i}\omega}{({\theta_{0} - \phi})}}}\rho{\mathbb{d}\rho}{\mathbb{d}\phi}}}} \right)}} < 0}} & (4) \end{matrix}$ where r₀, θ₀, ω, α and β are the parameters of the Gabor filters. r₀ and θ₀ respectively denotes the location of the filter, ω denotes the Gabor wavelet frequency, and α and β are parameters controlling the wavelet size. Re(A) denotes the real component of A while Im(A) denotes the imaginary component of A.

Many methods developed for biometrics use the computational core of IrisCode. These methods typically replace the usage of Gabor filters as is done in Equations 1-4 with other forms of linear filters or functions. Examples of such biometrics are PalmCode for palm print recognition which is disclosed in D. Zhang, W. K. Kong, J. You and M. Wong, “On-line palmprint identification”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 25, no. 9, pp. 1041-1050, 2003, or Ordinal Code for iris recognition which is disclosed in Z Sun and T. Tan, “Ordinal measures for iris recognition”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, no. 12, pp. 2211-2226, 2009.

These biometric methods essentially are feature extraction algorithms. The filtering and binarization processes may cause too much information inherent in the original biometric images to be lost, thus making the obtaining of biometric images from the biometric features generally unfeasible. As a result, original or compressed versions of the original images have to be stored so as to provide an image for reference and/or upgrading biometric systems. An example of this is in the case of IrisCode where the original iris images may be stored to allow for upgrading iris recognition systems.

It is an object of the present invention to provide a method of generating images from biometric features and devices which address at least one of the problems of the prior art and/or to provide the public with a useful choice.

SUMMARY OF THE INVENTION

In general terms, a first aspect of the invention relates to a method of image generation from biometric features. This may have the advantage of providing a method of decompressing images from biometric features and consequently may enable the biometric features to provide a feasible compressed image compression.

According to a first specific expression of the invention, there is provided a method of generating an image from biometric data, the method comprising constructing a graph of filter responses and bits which define the biometric data; comparing the bits with corresponding bits of reference graphs of a biometric database to obtain an optimal graph; updating the filter responses based on the optimal graph; and decompressing the biometric data based on the updated filter responses to generate an image.

Constructing the graph may comprise calculating a plurality of real components and a plurality of imaginary components from the biometric data based on the graph. The method may further comprise adding the calculated plurality of real and imaginary components to produce the generated image. The graph may comprise a plurality of nodes and a plurality of edges, wherein each of the plurality of nodes comprises a response value for modelling respective ones of the filter responses, and each of the plurality of edges comprises a magnitude of an inner product of two filters associated with the ends of each edge.

Each node may include a counter, and the method may further comprise updating the graph which includes:

setting each response value and counter to zero;

searching the biometric database based on the bits to determine the optimal graph; and

updating the response values and the counters based on the optimal graph.

Preferably, the references graphs are trained with a respective plurality of training images, each of the plurality of trained graphs comprising a plurality of trained nodes and a plurality of trained edges, wherein each of the plurality of trained nodes comprises a bit pair and a training response value modelling a training filter response of the training image, and each of the plurality of trained edges comprises a training magnitude of an inner product of two training filters associated with ends of each trained edge.

Each of the plurality of trained edges may be sorted. Preferably, obtaining the optimal graph includes searching the biometric database which may comprise scoring the biometric data with bit pairs of each of the plurality of reference graphs using a scoring function to produce a respective plurality of scores, and selecting the optimal graph by applying a searching criterion on the plurality of scores.

Each of the plurality of edges of the graph may be sorted. Preferably, the scoring function is:

${f\left( {B_{{kR}{({j,t})}},B_{{qR}{({j,t})}}} \right)} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} b_{{{kR}{({j,t})}}r}} = {{b_{{{qR}{({j,t})}}r}\mspace{14mu}{and}\mspace{14mu} b_{{{kR}{({j,t})}}i}} = b_{{{qR}{({j,t})}}i}}} \\ {- \infty} & {otherwise} \end{matrix} \right.$

where ƒ(B_(kR(j,t)), B_(qR(j,t))) denotes the scoring function taking as input parameters B_(kR(j,t)) and B_(qR(j,t);)

where B_(kR(j,t)) denotes the bit pair from a R(j,t)-th node of a k-th trained graph of the database, B_(kR(j,t)) comprised of real and imaginary bits respectively denoted b_(kR(j,t)r) and b_(kR(j,t)i;)

where B_(qR(j,t)) denotes a R(j,t)-th bit pair from the IrisCode that is denoted q, B_(qR(j,t)) comprised of real and imaginary bits respectively denoted b_(qR(j,t)r) and b_(qR(j,t)i); and

where R(j,t) is an indexing function for sorting a plurality of edges between a plurality of j-th nodes and a plurality of t-th nodes, the indexing function used for sorting the plurality of trained edges and the plurality of edges of the generating graph.

Preferably, the searching criterion is defined as:

$\left( {k_{j},T_{j}} \right) = {\arg{\max\limits_{k}\left( {\max\limits_{T}\left( {\sum\limits_{i = 1}^{T}{f\left( {B_{{kR}{({j,t})}},B_{{qR}{({j,t})}}} \right)}} \right)} \right)}}$ where

-   -   k_(j) is an index number of a graph of the plurality of optimal         graph;     -   T_(j) is the number of nodes of the k_(j)-th optimal graph with         bit pairs matching the B_(qR(j,t)) for the plurality of j-th         nodes; and     -   T is a variable between 1 and 1024.

Updating the response values and the counters may comprise: S _(qR(j,t)) =S _(qR(j,t))+Ψ(j,t)×S _(k) _(j) _(R(j,t)) C _(qR(j,t)) =C _(qR(j,t))+Ψ(j,t) where S_(qR(j,t)) is the response value of the R(j,t)-th node from the biometric data denoted q,

S_(k) _(j) _(R(j,t)) is the response value of the R(j,t)-th node of the k_(j)-th optimal graph,

C_(qR(j,t)) is the counter of the R(j,t)-th node from the IrisCode denoted q, and

Ψ(j,t) is the weight of the edge between a j-th node and a t-th node of the k_(j)-th optimal graph.

Calculating the plurality of real and imaginary components may further comprise normalizing the updated response values of the plurality of nodes with the updated counter values of the plurality of nodes;

decomposing the normalized updated response values into the plurality of real components and the plurality of imaginary components; and

rescaling the plurality of real and imaginary components by a scaling value.

Preferably, normalizing the updated response values of the plurality of nodes comprises dividing the updated response values by the updated counter values.

The scaling value may be: α/X _(q) where α is a scale factor; and X_(q) is a contrast value of the plurality of real and imaginary components.

α may be defined as:

$\alpha = {\frac{1}{K}{\sum\limits_{k = 1}^{K}X_{k}}}$ where X_(k) is a contrast value of a k-th image of the plurality of training images; and K is the number of images in the plurality of training images.

X_(q) may be defined as:

$X_{q} = {{{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},{\hat{I}}_{q}} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},{\hat{I}}_{q}} \right\rangle\xi_{ij}}}}}$ where Î_(q) is an approximate of the generated image; g_(rj) and g_(ij) respectively are a j-th real filter and a j-th imaginary filter; <g_(rj), Î_(q)> is an inner product between g_(rj) and Î_(q); <g_(ij), Î_(q)> is an inner product between g_(ij) and Î_(q); ξ_(rj) and ξ_(ij) respectively are vectors associating with the inner products <g_(rj), Î_(q)> and <g_(q), Î_(q)>; and n is the number of the plurality of nodes.

The training filter response of each of the plurality of trained nodes may be a Gabor filter response. Also, the filter response of each of the plurality of nodes may be a Gabor filter response.

The biometric data may be a feature for iris recognition. The feature for iris recognition may be IrisCode. The generated image may be a reconstruction of an original image, the biometric data being derived from the original image.

Generating the image may further comprise removing artifacts from the generated image. The described embodiment proposes two ways namely: interference artifact removal and compression artifact removal.

Indeed, these ways may form independent aspects of the invention, and according to a second specific expression, there is provided a method for interference artifact removal from an image comprising:

computing a frequency band information from a spectrum of the image; and

optimizing an objective function comprising the frequency band information to produce a resultant image.

Computing the frequency band information may comprise performing a two-dimensional Fourier transform on the image to produce a plurality of real image component and a plurality of imaginary image component.

The objective function may comprise a weighting function and a logarithm of the frequency band information, wherein the weighting function may emphasize on minimizing energy in high frequency bands.

Optimizing the objective function may comprise finding a local optimal of the objective function. In this respect, optimizing the objective function may iteratively update the plurality of real and imaginary image components.

Optimizing the objective function may further comprise checking the signs of the plurality of real and imaginary image components between iterations.

Preferably, optimizing the objective function may use gradient descent.

Computing the frequency band information may further comprise arranging the plurality of real and imaginary image components in a vector of the form {circumflex over (M)}=[<g _(r1) ,Î>, . . . ,<g _(rn) ,Î>,<g _(i1) ,Î>, . . . ,<g _(in) ,Î>] ^(T) where {circumflex over (M)} denotes the vector; <g_(r1), Î>, . . . , <g_(rn), Î> are the plurality of real image components; <g_(i1), Î>, . . . , <g_(in), Î> are the plurality of imaginary image components; Î is the image; g_(r1) . . . g_(rn) are n real filters; and g_(i1) . . . g_(in) are n imaginary filters.

According to a third specific expression, there is provided a method for compression artifacts removal from an image comprising:

approximating a resultant image using a plurality of training images;

minimizing energy in a plurality of selected frequency bands of the approximated resultant image; and

optimizing an objective function comprising the energy minimized approximated resultant image to produce a final resultant image.

Approximating the resultant image may comprise:

producing a plurality of residual components from the respective plurality of training images by subtracting from each of the plurality of training images a real component, an imaginary component and a brightness component;

producing a plurality of sub-space components by performing sub-space analysis on the plurality of residual components; and

adding together a mean of the residual components and the plurality of sub-space components.

The plurality of sub-space components may be weighted by a respective plurality of coefficients. Minimizing the energy in the plurality of selected frequency bands may comprise:

associating the plurality of coefficients with the plurality of selected frequency bands; and

modifying the plurality of coefficients.

The sub-space analysis performed on the plurality of residual components may be principal component analysis and the plurality of sub-space components may be a plurality of eigenvectors. Optimizing the objective function may comprise finding a near global optimal of the objective function.

In a fourth specific expression, there is provided apparatus for generating an image from biometric data, the apparatus comprising a processor configured to:

construct a graph of filter responses and bits which define the biometric data;

compare the bits with corresponding bits of reference graphs of a biometric database to obtain an optimal graph;

update the filter responses based on the optimal graph; and

decompress the biometric data based on the updated filter responses to generate an image.

In a fifth specific expression, there is provided a method for image generation from IrisCode comprising: providing an IrisCode obtained from an original image, and generating an image from the IrisCode, the generated image being a reconstruction of the original image.

In a sixth specific expression, there is provided an apparatus configured for image generation from IrisCode, the IrisCode obtained from an original image, the apparatus comprising a processor configured to generate an image from the IrisCode, the generated image a reconstruction of the original image.

The described embodiment may have an advantage of allowing the generated images to be used for testing and challenging the privacy and security of various biometric systems e.g. iris recognition systems. This is because the described embodiments may be capable of generating images of a reasonable quality.

In addition, the ability to reconstruct iris images from predefined IrisCode may be highly advantageous for algorithmic evaluation and security analysis of iris recognition systems.

The described embodiment may also have an advantage of allowing the visualization of images from biometric features. As an example, while IrisCode stores information about iris images, there previously may have been no way to visualize this information.

Further, the possibility of visualizing images from biometrics may have the added advantage that original biometric images no longer have to be stored for reference, visualization, and/or system upgrade purposes. The described embodiments may also utilize prior knowledge from a trained biometric database and thus may allow the generation of images from highly compressed or lossy features.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the invention may be fully understood and readily put into practical effect there shall now be described by way of non-limitative example only, an example embodiment described below with reference to the accompanying illustrative drawings in which:

FIG. 1 is an illustration of an apparatus for image generation and artifact removal according to an example embodiment;

FIGS. 2( a) and (b) are two photographs of original normalized iris images;

FIGS. 2( c) and (d) are two photographs of images generated from IrisCodes and their associated magnitude information, the IrisCodes respectively obtained from FIGS. 2( a) and (b);

FIG. 3 is a flow chart illustrating a method of database training which is required by the apparatus of FIG. 1 for image generation;

FIG. 4 is a flow chart illustrating the method for image generation which is performed by the apparatus of FIG. 1;

FIG. 5 is an illustration of a graph generated from a training image;

FIG. 6 is an illustration of a graph constructed from an IrisCode, the graph comprising a plurality of nodes, where the S and C values of the plurality of nodes are set to zero;

FIGS. 7( a) and (b) are two photographs of original iris images;

FIGS. 7( c) and (d) are two photographs of images generated using the method of FIG. 4 from IrisCodes respectively obtained from FIGS. 7( a) and (b)

FIG. 8( a) is a photograph of an original iris image;

FIG. 8( b) is a photograph of an image generated from IrisCode obtained from the original iris image of FIG. 8( a);

FIGS. 8( c) and 8(d) are two photographs of log power spectrum images of FIGS. 8( a) and 8(b) respectively;

FIG. 9 is a flow chart illustrating a method for interference artifacts removal which may be the artifact removal method performed by the apparatus of FIG. 1;

FIG. 10 is a flow chart illustrating the method for compression artifacts removal which may be the alternative artifact removal method performed by the apparatus of FIG. 1;

FIG. 11 is an illustration of the division of frequencies of a log power spectrum image into 16 bands;

FIGS. 12( a) and (b) are two photographs of original iris images;

FIGS. 12( c) and (d) are two photographs of images generated using the method of FIG. 4 from IrisCodes respectively obtained from FIGS. 12( a) and (b);

FIGS. 12( e) and (f) are two photographs of resultant images from FIGS. 12( c) and (d) respectively after applying the method of interference artifacts removal of FIG. 9;

FIG. 13( a) is a photograph of an image of the mean of {ζ₁, . . . , ζ_(K)} calculated from a plurality of K training images in the method of FIG. 10;

FIG. 13( b) is a photograph of a log power spectrum image of FIG. 13( a);

FIGS. 13( c), (e) and (g) are three photographs of the top three principle components estimated from the plurality of K training images in the method of FIG. 10;

FIGS. 13( d), (f) and (h) are three photographs of log power spectrum images respectively of FIGS. 13( c), (e) and (g);

FIGS. 14( a) and (b) are two photographs of original iris images;

FIGS. 14( c) and (d) are two photographs of images after applying the method of interference artifacts removal of FIG. 9 on respective images generated from IrisCodes obtained from FIGS. 14( a) and (b);

FIGS. 14( e) and (f) are two photographs of images after applying the method of compression artifacts removal of FIG. 10 on FIGS. 14( c) and (d) respectively;

FIG. 15( a) is a photograph of a plurality of original iris images; and

FIG. 15( b) is a photograph of a plurality of resultant images after applying the method of compression artifacts removal of FIG. 10 to a plurality of images respectively generated from IrisCode obtained from the original iris images of FIG. 15( a).

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows an apparatus 100 for image generation according to an example embodiment. The apparatus 100 comprises a processor 120 which is configured to perform image generation 130, and then optionally perform artifacts removal 490. The apparatus 100 is provided with an IrisCode 110 either externally (for example, reading from an external storage device), or internally (for example, obtaining from internal memory or cache). The IrisCode 110 is obtained from an original image.

The image generation 130 may be performed using an image generation method that will be described later. The artifacts removal 490 may be performed using artifacts removal methods such as a method of interference artifacts removal 900 and/or a method of compression artifacts removal 1000 that will be described later. The artifacts removal is optional and may not be performed.

After performing image generation 130 and the optional artifacts removal 490, the apparatus is configured to produce a generated image 150. The generated image 150 may be stored internally within the apparatus 100, or optionally be fed out of the apparatus for storage, display, etc. The generated image 150 is considered to be a reconstruction of the original image.

The apparatus 100 may take the form of a computer system, an embedded processor, a System-on-chip (SOC) device, or even a computing system comprising multiple processors and/or computer systems e.g. a parallel computing system.

The possibility of using IrisCode 110 as a compression algorithm is discussed next. Let g_(rj) and g_(ij) respectively be the real and imaginary parts of a j-th zero DC Gabor filter g_(j). g_(rj) and g_(ij) can be used to generate a bit pair in IrisCode. The entire IrisCode is made up of 1024 bit pairs, i.e. j. Let I denote an original image such that I=I₀(ρ, φ)ρ. I₀(ρ, φ) denotes the original image in a polar coordinate system with ρ as the radial coordinate and φ as the angular coordinate. <g_(r(i)j), I> thus denotes the inner product of g_(r(i)j) and I i.e. <g_(r(i)j), I>=∫∫g_(r(i)j)×Idxdy where g_(r(i)j) is a real (imaginary) part of a Gabor filter. It is noted that the inner product exhibits symmetry e.g. <g_(r(i)j), I>=<I, g_(r(i)j>. I) ₀ is obtainable from I as ρ is not zero. ρ in general may have a value between 0 and 1. If ρ is allowed to be zero, the pixels in the first row of I₀(ρ, φ) are removed to compute IrisCode. Consequently the pixels in the first row of I₀(ρ, φ) may not be obtainable from I=I₀(ρ, φ)ρ. Assuming that I can be decomposed as:

$\begin{matrix} {I = {{\sum\limits_{j = 1}^{n}{a_{j}g_{rj}}} + {\sum\limits_{j = 1}^{n}{b_{j}g_{ij}}} + {\sum\limits_{j = 1}^{m}{c_{j}\gamma_{j}}} + {d\;\Phi}}} & (5) \end{matrix}$ where a_(j), b_(j), c_(j), and dε

and Φ=[1 1 . . . 1]^(T). a_(j) and b_(j) denote coefficients for the respective filters g_(rj) and g_(ij). γ₁, . . . γ_(m-1), and γ_(m) denote the basis that spans the orthogonal complement of the space spanned by the filters g_(r1), . . . g_(rn) and g_(i1), . . . g_(in), and the DC vector Φ, while m is a constant denoting the dimension of this space. c_(j) denotes the coefficients of these bases. γ_(j) is a unit vector which is orthogonal to Φ, g_(rk) and g_(ik) such that <g_(r(i)k), γ_(j)>=0 and <Φ, γ_(j)>=0, where 1≦k≦n. n is the number of bit pairs in the IrisCode, e.g. n=1024.

$\sum\limits_{j = 1}^{n}{a_{j}g_{rj}\mspace{14mu}{and}\mspace{14mu}{\sum\limits_{j = 1}^{n}{b_{j}g_{ij}}}}$ thus are the real and imaginary filter components of I,

$\sum\limits_{j = 1}^{m}{c_{j}\gamma_{j}}$ are the orthogonal components, while dΦ is a component representing the brightness of the image.

Using Equation 5, the inner product of g_(r(i)k) and I can be obtained by

$\begin{matrix} {\left\langle {g_{{r{(i)}}k},I} \right\rangle = {{\sum\limits_{j = 1}^{n}{a_{j}\left\langle {g_{{r{(i)}}k},g_{rj}} \right\rangle}} + {\sum\limits_{j = 1}^{n}{b_{j}\left\langle {g_{{r{(i)}}k},g_{ij}} \right\rangle}} + {\sum\limits_{j = 1}^{m}{c_{j}\left\langle {g_{{r{(i)}}k},\gamma_{j}} \right\rangle}} + {d\left\langle {g_{{r{(i)}}k},\Phi} \right\rangle}}} & (6) \end{matrix}$ g_(r(i)k) is orthogonal to γ_(j) and Φ for all 1≦k≦n and 1≦j≦n. Equation 6 can be simplified as

$\begin{matrix} {\left\langle {g_{{r{(i)}}k},I} \right\rangle = {{\sum\limits_{j = 1}^{n}{a_{j}\left\langle {g_{{r{(i)}}k},g_{rj}} \right\rangle}} + {\sum\limits_{j = 1}^{n}{b_{j}\left\langle {g_{{r{(i)}}k},g_{ij}} \right\rangle}}}} & (7) \end{matrix}$

Using a matrix representation, it can be shown that M=GA where M=[g _(r1) ,I>, . . . ,<g _(rn) ,I>,<g _(i1) ,I>, . . . ,<g _(in) ,I>] ^(T) ,A=[a ₁ , . . . ,a _(n) ,b ₁ , . . . ,b _(n)]^(T) and

$\begin{matrix} {G = \begin{bmatrix} \left\langle {g_{r\; 1},g_{r\; 1}} \right\rangle & \ldots & \left\langle {g_{r\; 1},g_{rn}} \right\rangle & \left\langle {g_{r\; 1},g_{g_{i\; 1}}} \right\rangle & \ldots & \left\langle {g_{r\; 1},g_{in}} \right\rangle \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ \left\langle {g_{rn},g_{r\; 1}} \right\rangle & \ldots & \left\langle {g_{rn},g_{rn}} \right\rangle & \left\langle {g_{rn},g_{i\; 1}} \right\rangle & \ldots & \left\langle {g_{rn},g_{in}} \right\rangle \\ \left\langle {g_{i\; 1},g_{r\; 1}} \right\rangle & \ldots & \left\langle {g_{i\; 1},g_{rn}} \right\rangle & \left\langle {g_{i\; 1},g_{i\; 1}} \right\rangle & \ldots & \left\langle {g_{i\; 1},g_{in}} \right\rangle \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ \left\langle {g_{in},g_{r\; 1}} \right\rangle & \ldots & \left\langle {g_{in},g_{rn}} \right\rangle & \left\langle {g_{in},g_{i\; 1}} \right\rangle & \ldots & \left\langle {g_{in},g_{in}} \right\rangle \end{bmatrix}} & (8) \end{matrix}$

If G is invertible, we can substitute A=G⁻¹M into Equation 5 to obtain

$\begin{matrix} {I = {{\left\lbrack {g_{r\; 1}\mspace{14mu}\ldots\mspace{14mu} g_{rn}g_{i\; 1}\mspace{14mu}\ldots\mspace{14mu} g_{in}} \right\rbrack G^{- 1}M} + {\sum\limits_{j = 1}^{m}{c_{j}\gamma_{j}}} + {\mathbb{d}\Phi}}} & (9) \end{matrix}$ Let [ξ_(r1) . . . ξ_(rn) ξ_(i1) . . . ξ_(in)]=[g_(r1) . . . g_(rn) g_(i1) . . . g_(in)]G⁻¹. Equation 9 can then be rewritten as

$\begin{matrix} {I = {{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},I} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},I} \right\rangle\xi_{ij}}} + {\sum\limits_{j = 1}^{m}{c_{j}\gamma_{j}}} + {\mathbb{d}\Phi}}} & (10) \end{matrix}$ ξ_(rj) and ξ_(ij) respectively can be referred to as vectors of the real and imaginary inner products. It is noted that ξ_(rj) and ξ_(ij) respectively are solutions to Gξ_(rj)=g_(rj) and Gξ_(ij)=g_(ij).

It should be appreciated from Equation 10 that IrisCode may be considered to be a compression algorithm. This is because IrisCode uses one bit to store a quantized value for each coefficient of ξ_(r(i)j) i.e. <g_(r(i)j), I>, and erases all other coefficients. The quantization of coefficients and removal of unimportant coefficients may result in a compressed information representation.

Equation 10 also indicates that if the values of <g_(r(i)j), I> are known, an approximated iris image can be obtained, i.e.

$\begin{matrix} {I \approx {{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},I} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},I} \right\rangle\xi_{ij}}}}} & (11) \end{matrix}$ Equation 11 may be used to decompress an IrisCode.

It can be seen that none of the properties of Gabor filters are exploited in obtaining Equation 11. Thus, the theoretical result of Equation 11 is applicable to all methods that use the core of IrisCode for personal identification. In other words, many methods of palm print and iris recognition may be considered to be compression algorithms, and their templates are compressed biometric images.

An assumption is made in Equation 9 that G is invertible. If G is non-invertible, for example for other forms of biometrics, other methods (e.g. least square method) may be used to solve the system of linear equations M=GA.

FIGS. 2( a) and 2(b) show original normalized iris images. FIGS. 2( c) and 2(d) show images generated using Equation 11 from IrisCodes and their associated magnitude information, the IrisCodes respectively obtained from FIGS. 2( a) and 2(b). The generated images retain some key features such as iris texture and eyelids, and are thus a reconstruction of the original image. Since Equation 11 does not contain the brightness component i.e. dΦ, the average intensities of the generated images are thus different. Further, some compression artifacts can be observed in the generated images.

The compression ratio of IrisCode is extremely high. Assuming that the size of a normalized iris image is 512 pixels by 64 pixels, and one byte is used to store each pixel. Therefore, the compression ratio is 128 (since a typical IrisCode is 256 bytes and

$\left. {\frac{512 \times 64 \times 1}{256} = 128} \right).$ However, IrisCode may be further compressed without loss of information to about 50 bytes. To put it in perspective, 50 bytes is smaller than the size of an 8 pixel by 8 pixel patch in an 8-bit image. With this further level of compression, the compression ratio is increased to 655 (since

$\left. {\frac{512 \times 64 \times 1}{50} = 655} \right).$ The generation of images from IrisCode, or decompression of IrisCode is thus challenging because of this high compression ratio. Database Training

In order to model the structure of the training images of the database, as well as to model the IrisCode for image generation, graphs are defined such that for a graph where P=(V, E), V is a set of nodes representing the 1024 Gabor filters and E is a set of unordered pairs of vertices or edges.

FIG. 3 shows a method 300 for database training according to the example embodiment. In 310, a training image is modelled using a graph. Given a k-th training image of the database, the training image may be denoted as I_(k). The j-th node of the graph stores S_(j)=I_(k), g_(j)>/X_(k), where S_(j) is a response value denoting the response of a filter g_(j) to the image I_(k) during training, g_(j) denotes the j-th filter which is optionally a Gabor filter, and

$X_{k} = {{{{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},I_{k}} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},I_{k}} \right\rangle\xi_{ij}}}}}.}$ X_(k) is the norm of Gabor components in the image, which controls the contrast of the image. ∥φ∥ denotes the computation of a norm. The corresponding j-th IrisCode bit pair B_(j) will also be stored in the j-th node.

The edge between a j-th node and a u-th node is then weighted with the training magnitude of <g_(j), g_(u)>, which is denoted as |<g_(j), g_(u)>|. <g_(j), g_(u)> is the inner product of the filters g_(j) and g_(u) which respectively are associated with the j-th node and u-th nodes and |φ| denotes a magnitude computation. The training magnitude models the impact of the j-th node on the u-th node, and vice versa. If |<g_(j), g_(u)>|=0, the j-th node and the u-th node can be regarded as disconnected. If the training filters are Gabor filters, g_(j) and g_(u) would be the j-th and u-th Gabor filter in a complex analytical form and the structure of this graph is fixed for all k-th training images where k=1 . . . K, because the edges of the graphs are not dependent on I_(k).

FIG. 5 shows an illustration of a graph 500 generated from a k-th training image I_(k).

Turning back to FIG. 3, in 320, the training magnitudes of the edges of the graph are defined using an edge weight matrix Ω.

$\begin{matrix} {\Omega = \begin{bmatrix} {\left\langle {g_{1}g_{1}} \right\rangle } & {\left\langle {g_{1}g_{2}} \right\rangle } & \ldots & {\left\langle {g_{1}g_{n - 1}} \right\rangle } & {\left\langle {g_{1}g_{n}} \right\rangle } \\ {\left\langle {g_{2}g_{1}} \right\rangle } & {\left\langle {g_{2}g_{2}} \right\rangle } & \; & {\left\langle {g_{2}g_{n - 1}} \right\rangle } & {\left\langle {g_{2}g_{n}} \right\rangle } \\ \vdots & \; & \ddots & \; & \vdots \\ {\left\langle {g_{n - 1}g_{1}} \right\rangle } & {\left\langle {g_{n - 1}g_{2}} \right\rangle } & \; & {\left\langle {g_{n - 1}g_{n - 1}} \right\rangle } & {\left\langle {g_{n - 1}g_{n}} \right\rangle } \\ {\left\langle {g_{n}g_{1}} \right\rangle } & {\left\langle {g_{n}g_{2}} \right\rangle } & \ldots & {\left\langle {g_{n}g_{n - 1}} \right\rangle } & {\left\langle {g_{n}g_{n}} \right\rangle } \end{bmatrix}} & (12) \end{matrix}$ Ω summarizes the connections of the nodes and the weights of edges.

In 330, the edges of the graph are sorted using an indexing function. The weights of the edges |<g_(j), g₁>|, . . . , |<g_(j), g_(n)>| are sorted for example in descending order i.e., |<g_(j), g_(R(j,1))>|≧|<g_(j), g_(R(j,2))>|≧ . . . ≧|<g_(j), g_(R(j,n))>|, where R is the indexing function. This allows the comparison of different nodes against the j-th node of the k-th graph.

Because g_(j) is normalized, R(j,1)=j. Using this indexing function, a ranked weight matrix Ψ is defined as

$\begin{matrix} {\Psi = \begin{bmatrix} {\left\langle {g_{1}g_{R{({1,1})}}} \right\rangle } & {\left\langle {g_{1}g_{R{({1,2})}}} \right\rangle } & \ldots & {\left\langle {g_{1}g_{R{({1,{n - 1}})}}} \right\rangle } & {\left\langle {g_{1}g_{R{({1,n})}}} \right\rangle } \\ {\left\langle {g_{2}g_{R{({2,1})}}} \right\rangle } & {\left\langle {g_{2}g_{R{({2,2})}}} \right\rangle } & \; & {\left\langle {g_{2}g_{R{({2,{n - 1}})}}} \right\rangle } & {\left\langle {g_{2}g_{R{({2,n})}}} \right\rangle } \\ \vdots & \; & \ddots & \; & \vdots \\ {\left\langle {g_{n - 1}g_{R{({{n - 1},1})}}} \right\rangle } & {\left\langle {g_{n - 1}g_{R{({{n - 1},2})}}} \right\rangle } & \; & {\left\langle {g_{n - 1}g_{R{({{n - 1},{n - 1}})}}} \right\rangle } & {\left\langle {g_{n - 1}g_{R{({{n - 1},n})}}} \right\rangle } \\ {\left\langle {g_{n}g_{R{({n,1})}}} \right\rangle } & {\left\langle {g_{n}g_{R{({n,2})}}} \right\rangle } & \ldots & {\left\langle {g_{n}g_{R{({n,{n - 1}})}}} \right\rangle } & {\left\langle {g_{n}g_{R{({{n.},n})}}} \right\rangle } \end{bmatrix}} & (13) \end{matrix}$

In 340, the steps of modeling 310, defining the edge weight matrix 320 and sorting the edges using an indexing function 330 are repeated for all K training images to form a trained database 350. Given K training images, the trained database would have K graphs. The nodes of each of the k-th graph where k=1 . . . K store the different bit pairs B_(j) and training response values S_(j), for j=1 . . . n where n is the number of nodes in each graph e.g. n=1024. It is noted that all K graphs would have the same structure i.e. Ω and Ψ (which is defined below) are the same for all the graphs.

Magnitude Information Recovery

FIG. 4 shows a method 400 for image generation 130 performed by the processor 120 of FIG. 1. This method assumes that a trained database 350 is available. The graph constructed in the trained database 350 indicates that a node is influenced by its adjacent nodes. The method 400 uses these relationships to recover the magnitude information of the IrisCode for each j-th filter i.e. |<I, g_(rj)>| and |<I, g_(ij)>|, and thus may be regarded as a decompression of the IrisCode.

In 410, a generating graph is constructed from an IrisCode denoted q that is obtained from an original image. The bit pairs B_(q) of the IrisCode q are stored in the nodes of the graph; each node of the graph stores a bit pair B_(qj)=(b_(qjr), b_(qji)). Each node of the graph also has a counter C_(qj) and a response value S_(qj) which models the response to a filter g_(j)·g_(j), which may be a Gabor filter.

The edges of the generating graph between a j-th node and a u-th node are weighted |<g_(j), g_(u)>|. |<g_(j), g_(u)>| is the inner product of the filters g_(j) and g_(u), which respectively are associated with the j-th node and u-th nodes. The edges of the graph for each of j=1 . . . n are then sorted by their weights using an indexing function R such that <g_(j), g₁>, . . . , <g_(j), g_(u)>, . . . , <g_(j), g_(n)> is reordered to be <g_(j), g_(R(j,1))>, <g_(j), g_(R(j,2))>, . . . , <g_(j), g_(R(j,n))>.

In 415, the response values S={S_(q1), . . . , S_(qj), . . . , S_(qn)} and the counters C={C_(q1), . . . , C_(qj), . . . , C_(qn)} for the generating graph are set to zero.

FIG. 6 shows an illustration of a graph 600 constructed from an IrisCode q where all S and C values are set to zero.

Assuming that the trained database 350 has K training images, there are K graphs in the database. The information contained in the trained database 350 is used to recover the S values of the generating graph constructed using the IrisCode q.

In 420, the IrisCode q as represented by the sorted graph is scored with each graph in the trained database 350 using a scoring function ƒ(B_(kR(j,t)),B_(qR(j,t))). The algorithm processes node after node, for j=1 . . . n .

Given a j-th node, the bit pairs of the input IrisCode q i.e. B_(qj)=(b_(qjr) b_(qji)) are scored against each graph of the database. The scoring function is

$\begin{matrix} {{f\left( {B_{{kR}{({j,t})}},B_{{qR}{({j.t})}}} \right)} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} b_{{{kR}{({j,t})}}r}} = {{b_{{{qR}{({j,t})}}r}\mspace{14mu}{and}\mspace{14mu} b_{{{kR}{({j,t})}}i}} = b_{{{qR}{({j,t})}}i}}} \\ {- \infty} & {otherwise} \end{matrix} \right.} & (14) \end{matrix}$ B_(kR(j,t)) denotes the R(j,t)-th bit pair of a k-th graph of the trained database while B_(qR(j,t)) denotes the R(j,t)-th bit pair of the sorted generating graph of the IrisCode q. b_(kR(j,t)r) and b_(qR(j,t)r) respectively denote the real bits of B_(kR(j,t)) and B_(qR(j,t)), while b_(kR(j,t)i), and b_(qR(j,t)i), respectively denote the imaginary bits of B_(kR(j,t)) and B_(qR(j,t).)

In 430, an optimal graph is selected from the trained database 350 using a searching criterion. The searching criterion is

$\begin{matrix} {\left( {k_{j},T_{j}} \right) = {\arg{\max\limits_{k}\left( {\max\limits_{T}\left( {\sum\limits_{t = 1}^{T}{f\left( {B_{{kR}{({j,t})}},B_{{qR}{({j,t})}}} \right)}} \right)} \right)}}} & (15) \end{matrix}$ where k_(j) is an index number of the optimal graph in the trained database, T_(j) is the number of nodes of the optimal graph from the trained database 350 that match B_(qR(j,t)) and T is a variable between 1 and 1024.

This criterion is equivalent to searching for an optimal graph in the training database which has maximum consecutive bit pairs that match the corresponding bit pairs in the input IrisCode q.

In 440, the response values and counters of the generating graph 600 are updated using the optimal graph k_(j) from the trained database. The following updates are performed: S _(qR(j,t)) =S _(qR(j,t))+Ψ(j,t)×S _(k) _(j) _(R(j,t))  (16) C _(qR(j,t)) =C _(qR(j,t))+Ψ(j,t)  (17) where 1≦t≦T_(j), and × denotes a multiplication. S_(qR(j,t)) is an estimated Gabor response of the image I_(q) and the Gabor filter g_(R(j,t)), S_(k) _(j) _(R(j,t)) is the Gabor response of the training Image I_(k) _(j) and g_(R(j,t)), C_(qR(j,t)) is a counter for the node indexed to be R(j,t) in the input graph q and Ψ(j,t) is the value in the ranked weight matrix Ψ at j-th row and t-th column. In other words, Ψ(j,t) gives the weight of the edge between the j-th and t-th nodes of the optimal graph k_(j).

Equations 14, 15 and 16 ensures that Q(Re(S_(qR(j,t)))=B_(qR(j,t)) and Q(Im(S_(qR(j,t))))=B_(qR(j,t)), where Q represents the quantization process defined by Equations 1 and 2 for real components, and Equations 3 and 4 for imaginary components.

In 450, the updated response values of the generating graph 600 are normalized. This is done when all 1024 nodes are updated in 440. All the S={S_(q1), . . . , S_(qj), . . . , S_(qn)} values are normalized by S _(qj) =S _(qj) /C _(qj)  (18)

In 460, the normalized response values are decomposed into real and imaginary components i.e. <I_(q), g_(rj)>=Re(S_(qj)) and <I_(q), g_(ij)>=Im(S_(qj)) for j=1 . . . n. By decomposing the S values, <I_(q), g_(rj)> and <I_(q), g_(ij)> can be estimated and respectively denoted <Î_(q), g_(rj)> and <Î_(q), g_(ij)>. Using Equation 11, an approximated I_(q) is obtained as Î_(q). Î_(q) represents the approximate image generated from the IrisCode q.

In 470, the real and imaginary components <Î_(q), g_(rj)> and <Î_(q), g_(ij)> are rescaled for j=1 . . . n where n is the number of bit pairs in the IrisCode q. This is done because the magnitude of the final S_(qj) may be very different from the magnitude of <I, g_(j)>, since the S values in the trained database are normalized by X_(k).

Rescaling comprises the computing of the norm X_(q) of the approximate generated image Î_(q) as

${X_{q} = {{{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},{\hat{I}}_{q}} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},{\hat{I}}_{q}} \right\rangle\xi_{ij}}}}}},$ and then rescaling <Î_(q), g_(rj)> and <Î_(q), g_(ij)> as <Î_(qresscle), g_(rj)>=<Î_(q), g_(rj)>α/X_(q) and <Î_(qresscle), g_(ij)>=<Î_(q), g_(ij)>α/X_(q) respectively i.e. α/X is the scaling value. Î_(qresscle) denotes a rescaled version of the approximate generated image Î_(q), α is a scale factor and X_(q) is a contrast value of the real and imaginary components of Î_(q). If α is unknown, α can simply be set as

$\alpha = {\frac{1}{K}{\sum\limits_{k = 1}^{K}X_{k}}}$ i.e. α is an average contrast value of the plurality of images used in the trained database.

Information about the coefficient d which controls the brightness of I, as well as the norm of

${\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},I} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},I} \right\rangle\xi_{ij}}} + {\sum\limits_{j = 1}^{m}{c_{j}\gamma_{j}}}$ which controls the contrast of I are completely absent. There is however no need to recover this information because iris recognition methods typically are insensitive to the brightness and contrast of I.

In 480, the real and imaginary components are added together to produce the rescaled version of the generated image Î_(qresscle). In this case, the rescaled real and imaginary components i.e. <Î_(qresscle), g_(rj)> and <Î_(qresscle), g_(rj)> are added together using Equation 11, with <Î_(qresscle), g_(rj)> in place of <g_(rj), I> and <Î_(qresscle), g_(ij)> in place of <g_(ij), I>.

It is noted that in the present embodiment of obtaining the approximate generated image Î_(q) or the rescaled generated image Î_(qresscle) from the IrisCode q, the complex Gabor filters g_(j) for j=1 . . . n are not used as illustrated by equations (10) and (11) and thus the results may be applicable to other coding methods. Consequently, the method 400 of image generation of the present embodiment may be used to generate images from other forms of biometric codes, e.g. biometric codes for palm print, hand vein patterns, finger-knuckle, retinas, or faces. These biometric codes do not have to use Gabor filters; other forms of linear filters or functions may be used in place of Gabor filters.

Although the complex Gabor filters are not necessary in generating the image, the knowledge of the complex Gabor filter however may give extra information for the reconstruction from IrisCode. For example, knowledge of the filters in Equation 14 allows the real and imaginary parts to be considered simultaneously and consequently, the phase and magnitude of the Gabor response may be used to approximate a Gabor atom in the image being reconstructed.

Further, although the present embodiment considers the bits of an IrisCode in a pairwise fashion—with a bit of the pair representing the real component and the other bit representing the imaginary component—it is envisaged that a bit may be used as the basic processing unit. In such as a case, the graph constructed in 410 may store a bit in each node of the graph. Thus, instead of using Equation 14 as the scoring function in step 420, the scoring function may be

${f\left( {b_{{{kR}{({j,t})}}{r{(i)}}} = b_{{{qR}{({j,t})}}{r{(i)}}}} \right)} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} b_{{{kR}{({j,t})}}{r{(i)}}}} = b_{{{qR}{({j,t})}}{r{(i)}}}} \\ {- \infty} & {otherwise} \end{matrix} \right.$ The searching criterion used in 430 may then be

$\left( {k_{j},T_{j}} \right) = {\arg{\max\limits_{k}\left( {\max\limits_{T}\left( {\sum\limits_{t = 1}^{T}{f\left( {b_{{{kR}{({j,t})}}{r{(i)}}},b_{{{qR}{({j,t})}}{r{(i)}}}} \right)}} \right)} \right)}}$

FIGS. 7( a) and 7(b) show two original iris images. FIGS. 7( c) and 7(d) show two images generated using the method of FIG. 4 from IrisCodes obtained from the respective two original iris images in FIGS. 7( a) and 7(b). In other words, FIGS. 7( c) and 7(d) are reconstructed images of FIGS. 7( a) and 7(b). The FIGS. 7( c) and 7(d) are displayed using the DC and contrast of the original images in order to avoid human perception differences. It can be seen that that many detailed features (e.g. eyelid and iris texture) are successfully recovered. However, many artifacts can also be observed. Some of these artifacts result from the updating 440 of the response values and counters of the graph 600, while some of these artifacts are due to the missing orthogonal components γ_(j).

In 490, the artifacts are removed from the generated image. Two post-processing techniques are used. The first post-processing technique removes interference artifacts while the second post-processing technique removes artifacts resulting due to the missing γ_(j). Both of these techniques operate in the Fourier domain because these artifacts have a very strong periodic behavior.

It is noted once again that the complex Gabor filters g_(j) for j=1 . . . n are not used in either of the post-processing techniques and thus the post-processing techniques may be applicable to other coding methods or forms of biometrics. In other words, the artifacts removal techniques may be applied to other types of images or biometrics, not only the images generated from IrisCode.

For simplicity however, the artifacts removal techniques are described using an image generated from IrisCode which will be denoted using the notation Î. The resultant images from each of the artifacts removal techniques is then denoted as Ī.

The two artifact removal techniques, namely the interference artifact removal 900 and the compression artifact removal 1000 will now be described.

Interference Artifact Removal 900

FIG. 8( a) shows an original iris image and FIG. 8( b) shows an image generated from the IrisCode obtained from the original iris image. FIGS. 8( c) and 8(d) respectively then show the log power spectrums of FIGS. 8( a) and 8(b).

It can be seen from FIG. 8( d) that the generated image Î contains more energy in the high frequency spectrum than FIG. 8( c) and that Î has sixteen frequency bands with very high energy as represented by the lighter/white shades in the spectral diagram of FIG. 8( d).

FIG. 9 shows a method for interference artifacts removal 900 which may be performed by the apparatus of FIG. 1.

In 910, an image Î is provided. This image may be generated using the method of image generation 400 of FIG. 4. Let

$\hat{I} = {{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},\hat{I}} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},\hat{I}} \right\rangle\xi_{ij}}}}$ where <g_(rj), Î> and <g_(ij), Î> respectively are real and imaginary filter components, and n is the number of real and imaginary filter components. n in this case can for example be 1024.

In 920, a two-dimensional Fourier transform is applied to the image producing a spectrum of Î. Let F_(2D)(●) denote a two-dimensional Fourier transform operation. Because F_(2D)(●) is a linear operator, F_(2D)(●) when applied to Î results in

${F_{2D}\left( \hat{I} \right)} = {{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},\hat{I}} \right\rangle{F_{2D}\left( \xi_{rj} \right)}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},\hat{I}} \right\rangle{{F_{2D}\left( \xi_{ij} \right)}.}}}}$ F_(2D)(Î) is the spectrum of Î and can be considered as a vector although F_(2D)(●) is a two dimensional transform.

Using a matrix representation, it can be arranged such that F _(2D)(Î)=Z{circumflex over (M)}  (19) where Z=[F_(2D)(ξ_(r1)) . . . F_(2D)(ξ_(rn))F_(2D)(ξ_(i1)) . . . F_(2D)(ξ_(in))] and {circumflex over (M)}=[<g_(r1), Î>, . . . , <g_(rn), Î>, <g_(i1), Î>, . . . <g_(in), Î>]^(T).

Therefore, the energy of Î is given by F _(2D)(Î)F _(2D)(Î)={circumflex over (M)} ^(H) Z ^(H) Z{circumflex over (M)}  (20) where ●^(H) represents a complex conjugate transpose. It is noted from Equation 20 that the energy of Î i.e. F_(2D)(Î)^(H) F_(2D)(Î) may be obtained from {circumflex over (M)}.

{circumflex over (M)} may be regarded as an independent variable vector in the minimization of the energy of Î. However, directly performing a minimization on Equation 20 may not be effective because this would mix together energy from different frequencies.

FIG. 11 shows the division of the frequencies of a log power spectrum image into 16 bands. Only the even bands in FIG. 11 are labeled. The frequency 1110 between the two C16 bands is not considered because this band contains very low frequency information (e.g. DC) and thus should not be artifacts.

Returning to FIG. 9, in 930, the frequency information for each band in the spectrum of Î is computed. The frequency information in each band is computed by Γ_(e)(F _(2D)(Î))=[Γ_(e)(F _(2D)(ξ_(r1))) . . . Γ_(e)(F _(2D)(ξ_(in)))]{circumflex over (M)}  (21) where Γ_(e) is an operator that selects the elements of an input vector in band e.

Let Γ_(e)(Z)=[Γ_(e)(F_(2D)(ξ_(r1))) . . . Γ_(e)(F_(2D)(ξ_(in)))]. The total energy in band e is thus Γ_(e)(F _(2D)(Î))^(H)Γ_(e)(F _(2D)(Î))={circumflex over (M)} ^(H)Γ_(e)(Z)^(H)Γ_(e)(Z){circumflex over (M)}  (22)

In 940, an objective function is optimized. Typically, the low frequency components would have more energy but the high frequency artifacts are more visually annoying. Thus, logarithm and weighting functions are introduced to form the objective function, which is defined as

$\begin{matrix} {{\mu\left( \hat{M} \right)} = {\sum\limits_{c = 1}^{16}{{w(c)}{\log\left( {{\hat{M}}^{H}{\Gamma_{e}(Z)}^{H}{\Gamma_{e}(Z)}\hat{M}} \right)}}}} & (23) \end{matrix}$ where w is a positive weighting function that emphasizes on minimizing energy in high frequency bands.

It would be appreciated that {circumflex over (M)}=[0 . . . 0]^(T) is the global optimal but that is not the target solution. A local optimal is sought that is close to the input {circumflex over (M)}. This is done with the objective of retaining the estimated structural information but removal of the interference artifacts.

The function μ is differentiable and thus many methods known to the skilled person may be used for this optimization. In this embodiment, the gradient descent method is used. In doing so, {circumflex over (M)} is iteratively updated with the objective of minimizing the objective function. When the objective function is minimized, {circumflex over (M)} will be at a local minima. This local minima value of {circumflex over (M)} is denoted by {tilde over (M)} such that {tilde over (M)}=[<g_(r1), Ī>, . . . , <g_(rn), Ī>, <g_(i1), Ī>, . . . , <g_(in), Ī>]^(T). The resultant image Ī can then be obtained by substituting the elements of {tilde over (M)} into Equation 11.

In order to check that the input IrisCode and the IrisCode generated from the resultant image of this post-processing algorithm are similar, updates to {circumflex over (M)} in each iteration of the gradient descend algorithm are checked to ensure that sign({circumflex over (M)}_(t))=sign({circumflex over (M)}_(t-1)), where t is an iteration index. sign(A) is a sign operator retaining the sign of A. If sign({circumflex over (M)}_(t))=sign({circumflex over (M)}_(t-1)) for each t-th iteration, then sign({tilde over (M)})=sign({circumflex over (M)}) may be achieved. {tilde over (M)} denotes the final {circumflex over (M)} resulting after gradient descent.

FIGS. 12( a) and (b) show two original iris images. FIGS. 12( c) and (d) show two images respectively generated using the method of image generation 400 from IrisCodes obtained from the respective two original iris images FIGS. 12( a) and (b) i.e. FIGS. 12( c) and (d) are reconstructions of FIGS. 12( a) and (b). FIGS. 12( e) and (f) then show the images FIGS. 12( c) and (d) after applying the method of interference artifacts removal 900 according to the present embodiment.

Comparing FIGS. 12( e) and (f) with the respective FIGS. 12( c) and (d), it can be seen that FIGS. 12( e) and (f) are smoother and more visually appealing. However, many compression artifacts still exist because of the missing of γ.

Compression Artifacts Removal 1000

Compression artifacts removal 1000 generates γ={γ₁, γ₂, . . . , γ_(m)} and the coefficients {c₁, c₂, . . . , c_(m)}. This allows the generation of images using Equation 10. It is noted that γ₁, . . . , γ_(m-1) and γ_(m) are orthogonal to Φ, g_(rk) and g_(ik) i.e. <Φ, γ_(j)>=0, <g_(rk), γ_(j)>=0 and <g_(ik), γ_(j)>=0, where 1≦k≦n and 1≦j≦m. To fulfill this requirement, principal component analysis is used to derive {γ₁, γ₂, . . . , γ_(m)}.

FIG. 10 shows the method for compression artifacts removal 1000 which is an alternative artifact removal which may be performed by the apparatus 100 of FIG. 1.

In 1010, K training images I_(k) for k=1 . . . K are provided.

In 1020, the real (i.e.

$\left. {\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},I_{k}} \right\rangle\xi_{rj}}} \right),$ imaginary (i.e.

$\left. {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},I_{k}} \right\rangle\xi_{ij}}} \right)$ and brightness (i.e. dΦ) components are removed from each I_(k). In other words, all information in the space spanned by {g_(r1), . . . , g_(rn), g_(i1), . . . g_(in), Φ} are removed, i.e.,

$\begin{matrix} {Ϛ_{k} = {I_{k} - {\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},I_{k}} \right\rangle\xi_{rj}}} - {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},I_{k}} \right\rangle\xi_{ij}}} - {\mathbb{d}\Phi}}} & (24) \end{matrix}$ This is performed for k=1 . . . K, thus producing the residual components {ζ₁, . . . , ζ_(K)}.

In 1030, principal component analysis (PCA) is performed on {ζ₁, . . . , ζ_(K)}. The variances of {ζ₁, . . . , ζ_(K)} along the directions of g_(r1), . . . , g_(rn), g_(i1), . . . g_(in) and Φ are zero and therefore the principal components computed from {ζ₁, . . . , ζ_(K)} are automatically orthogonal to g_(r1), . . . , g_(rn), g_(i1), . . . g_(in), and Φ.

The space spanned by the principal components computed from {ζ₁, . . . , ζ_(K)} is in fact in the intersection between the space spanned by iris images and the orthogonal complement of the space spanned by {g_(r1), . . . , g_(rn), g_(i1), . . . g_(in), Φ}. The computation of PCA may be performed using any of the techniques that is known in the art. Alternatively, other methods of sub-space analysis known to the skilled person can be performed in place of PCA, for example Factor Analysis (FA) or Independent Component Analysis (ICA).

In 1040, the means of {ζ₁, . . . , ζ_(K)} and the m′ most significant eigenvectors are obtained. In the case where sub-space methods other than PCA are used, the m′ most significant sub-space components are obtained. Let γ₀ denote the mean of {ζ₁, . . . , ζ_(K)} and γ₁, γ₂, . . . and γ_(m) are the m′ most significant eigenvectors from the PCA. Thus

${Ϛ_{e} \approx {{\sum\limits_{j = 1}^{m^{\prime}}{c_{ej}^{\prime}\gamma_{j}}} + \gamma_{0}}},$ where c′_(ej) s are coefficients and m′<m. e is an index with a value between 1 and K.

FIG. 13( a) shows the mean of {ζ₁, . . . , ζ_(K)} that is calculated from K training images. FIGS. 13( c), (e) and (g) show the top three principal components estimated from K=1000 images. FIGS. 13( b), (d), (f) and (h) show the log power spectrums of FIGS. 13( a), (c), (e) and (g) respectively. It can be seen that the principal components store important information to remove the compression artifacts.

Returning to FIG. 10, in 1050, the resultant image Ī is approximated to be I. Using γ₀, γ₁, γ₂, . . . , γ_(m) and {tilde over (M)}, an iris image can be approximated as

$\begin{matrix} {I \approx {{\left\lbrack {\xi_{r\; 1}\mspace{14mu}\ldots\mspace{14mu}\xi_{rn}\xi_{i\; 1}\mspace{14mu}\ldots\mspace{14mu}\xi_{in}} \right\rbrack\overset{\sim}{M}} + {\sum\limits_{j = 1}^{m^{\prime}}{c_{j}\gamma_{j}}} + \gamma_{0} + {\mathbb{d}\Phi}}} & (25) \end{matrix}$ It is noted that the method of compression artifacts removal 1000 can be done independently of the method of interference Artifact Removal 900, in which case_{circumflex over (M)} can be used in place of {tilde over (M)} in Equation 25, where {circumflex over (M)}=[<g _(r1) ,Î _(q) >, . . . ,<g _(rn) ,Î _(q) >,<g _(i1) ,Î _(q) >, . . . ,<g _(in) ,Î _(q)>]^(T) or {circumflex over (M)}=[<g _(r1) ,Î _(q) >, . . . ,<g _(rn) ,Î _(qresscle) >,<g _(i1) ,Î _(qresscle) >, . . . ,<g _(in) ,Î _(qresscle)>]^(T).

Let Ĩ=[ξ_(r1) . . . ξ_(rn) ξ_(i1) . . . ξ_(in)]{tilde over (M)}+γ₀, ℑ=[γ₁, γ₂, . . . , γ_(m′)] and C=[c₁, c₂, . . . , C_(m′)]^(T). d can be temporarily set to d=0 and Equation 25 can thus be rewritten as I≈Ĩ+ℑC.

In 1060, the energy in selected frequency bands is minimized. The energy of the compression artifacts concentrates in the frequency bands 2e−1, where e=1, . . . , 8. Thus, the energy in only these bands may be minimized by modifying the coefficient vector C=[c₁, c₂, . . . , c_(m′)]^(T). C is thus a vector of weights associated with the frequency bands selected for energy minimization.

The energy of Ĩ+ℑC may be represented as F _(2D)(Ĩ+ℑC)^(H) F _(2D)(Ĩ+ℑC)=(C ^(H)

^(H) +F _(2D)(Ĩ)^(H))(

C+F _(2D)(Ĩ))  (26) where

=[F_(2D)(γ₁) . . . F_(2D)(γ_(m′))].

The energy in band e is thus Γ_(e)(F _(2D)(Ĩ+ℑC)^(H)Γ_(e)(F _(2D)(Ĩ+ℑC))=(C ^(H)Γ_(e)(

)^(H)+Γ_(e)(F _(2D)(Ĩ))^(H))(Γ_(e)(

)C+Γ _(e)(F _(2D)(Ĩ)))  (27) where the selection operator Γ_(e)(

)=[Γ_(e)(F_(2D)(γ₁) . . . Γ_(e)(F_(2D)(γ_(m′)))].

In 1070, an objective function containing the coefficient vector C=[c₁, c₂, . . . , c_(m′)]^(T) is optimized. The objective function is defined as:

$\begin{matrix} {{\mu_{1}(C)} = {\sum\limits_{e = 1}^{8}{{\log\left( {{C^{H}{\Gamma_{{2e} - 1}{()}}^{H}} + {\Gamma_{{2e} - 1}\left( {F_{2D}\left( \overset{\sim}{I} \right)} \right)}^{H}} \right)}{\Gamma\left( {{{\Gamma_{{2e} - 1}{()}}C} + {\Gamma_{{2e} - 1}\left( {F_{2D}\left( \overset{\sim}{I} \right)} \right)}} \right)}}}} & (28) \end{matrix}$

Equation 28 may thus be used to minimize the compression artifacts. The objective function of Equation 28 may be optimized using any of the methods known to the skilled person, e.g. optimization by gradient descent. Unlike the objective function of Equation 23 for the method of interference artifacts removal 900, a weighting function w(●) does not have to be included in Equation 28. This is because the compression artifacts in different frequency bands are considered to be equally important. As with the objective function of Equation 23, the objective function of Equation 28 is also differentiable, but the target solution in Equation 28 is a near global optimal.

FIGS. 14( a) and 14(b) show two original iris images. FIGS. 14( c) and 14(d) show two images generated from the respective IrisCodes with the method of interference artifacts removal 900 applied. FIGS. 14( e) and 14(f) then show the images FIGS. 14( c) and 14(d) after applying the method of compression artifacts removal 1000 according to the present embodiment. FIGS. 14( e) and 14(f) may be seen as reconstructions of FIGS. 14( a) and 14(b).

It may be seen that the method of compression artifacts removal 1000 weakens the compression artifacts. Further results are shown in FIGS. 15( a) and 15(b).

FIG. 15( a) shows a plurality of original iris images while FIG. 15( b) shows a respective plurality of resultant images after applying the method of compression artifacts removal 1000 to images generated from IrisCode obtained from the plurality of original iris images of FIG. 15( a).

As it may be appreciated, the generated images are of reasonably good quality and thus may be used to test and challenge the privacy and security of various biometric systems e.g. iris recognition systems. In addition, it is possible to allow visualization of IrisCode features since the IrisCode may now be represented by a reconstructed image, rather than simply a series of ones and zeros. The use of prior knowledge from a trained biometric database may also allow the generation or reconstruction of images from highly compressed or lossy features.

The described embodiments should not be construed as limitative. For example, while IrisCode is originally conceived to be used as a feature for iris images and iris recognition, the described embodiment may use IrisCode that is obtained from other types of images, e.g. images of palm prints, hand vein patterns, finger-knuckle, retinas, or faces. It should be appreciated that IrisCode is generally means any biometric template which is generated by the core of IrisCode.

Further, it is envisaged that other types of biometric templates or features can be used in place of IrisCode, e.g. PalmCode for palm prints, and Ordinal Code for iris images.

It is also envisaged that biometric features that are made discrete by BioHashing may be used in place of IrisCode. BioHashing is disclosed in A. T. B. Jin, D. N. C. Ling and A. Goh, “Biohashing: two factor authentication featuring fingerprint data and tokenized random number”, Pattern Recognition, vol. 37, pp. 2245-2255, 2004, the contents of which are incorporated herein by reference.

Thus, while embodiments of the present invention are described using IrisCode, these embodiments are not limited for use with IrisCode, so long the feature used belongs to the group of algorithms sharing the same computational architecture as IrisCode.

Further, the biometric template or feature may not be derived or need not represent an original image. For example, the biometric template may be simply biometric data which is synthetically generated and the algorithm of the present invention being used to generate an image based on the biometric data. The biometric data may not be necessarily associated with a human.

While example embodiments of the invention have been described in detail, many variations are possible within the scope of the invention as will be clear to a skilled reader. 

The invention claimed is:
 1. A method of generating an image from biometric data, the method comprising constructing a graph of filter responses and bits which define the biometric data; calculating a plurality of real components and a plurality of imaginary components from the biometric data based on the graph; comparing the bits with corresponding bits of reference graphs of a biometric database to obtain an optimal graph; updating the filter responses based on the optimal graph; and decompressing the biometric data based on the updated filter responses to generate an image; wherein the method further comprises adding the calculated plurality of real and imaginary components to produce the generated image.
 2. The method according to claim 1, wherein the graph comprises a plurality of nodes and a plurality of edges, wherein each of the plurality of nodes comprises a response value for modelling respective ones of the filter responses, and each of the plurality of edges comprises a magnitude of an inner product of two filters associated with the ends of each edge.
 3. The method according to claim 2, wherein each node further includes a counter.
 4. The method according to claim 3, further comprising updating the graph which includes: setting each response value and counter to zero; searching the biometric database based on the bits to determine the optimal graph; and updating the response values and the counters based on the optimal graph.
 5. The method according to claim 1, wherein the reference graphs are trained with a respective plurality of training images, each of the plurality of trained graphs comprising a plurality of trained nodes and a plurality of trained edges, wherein each of the plurality of trained nodes comprises a bit pair and a training response value modelling a training filter response of the training image, and each of the plurality of trained edges comprises a training magnitude of an inner product of two training filters associated with ends of each trained edge.
 6. The method according to claim 5, wherein the each of the plurality of trained edges is sorted.
 7. The method according to claim 5, wherein obtaining the optimal graph includes searching the biometric database which comprises: scoring the biometric data with bit pairs of each of the plurality of reference graphs using a scoring function to produce a respective plurality of scores, and selecting the optimal graph by applying a searching criterion on the plurality of scores.
 8. The method according to claim 7, wherein the each of the plurality of edges of the graph is sorted.
 9. The method according to claim 7, wherein the scoring function is: ${f\left( {B_{{kR}{({j,t})}},B_{{qR}{({j,t})}}} \right)} = \left\{ \begin{matrix} 1 & {{{if}\mspace{14mu} b_{{{kR}{({j,t})}}r}} = {{b_{{{qR}{({j,t})}}r}\mspace{14mu}{and}\mspace{14mu} b_{{{kR}{({j,t})}}i}} = b_{{{qR}{({j,t})}}i}}} \\ {- \infty} & {otherwise} \end{matrix} \right.$ where f(B_(kR(j,t)), B_(qR(j,t))) denotes the scoring function taking as input parameters B_(kR(j,t)) and B_(qR(j,t);) where B_(kR(j,t)) denotes the bit pair from a R(j,t)-th node of a k-th trained graph of the database, B_(kR(j,t)) comprised of real and imaginary bits respectively denoted b_(kR(j,t)r) and b_(kR(j,t)i;) where B_(qR(j,t)) denotes a R(j,t)-th bit pair from the IrisCode that is denoted q, B_(qR(j,t)) comprised of real and imaginary bits respectively denoted b_(qR(j,t)r) and b_(qR(j,t)i); and where R(j,t) is an indexing function for sorting a plurality of edges between a plurality of j-th nodes and a plurality of t-th nodes, the indexing function used for sorting the plurality of trained edges and the plurality of edges of the generating graph.
 10. The method according to claim 7, wherein the searching criterion is: $\left( {k_{j},T_{j}} \right) = {\arg{\max\limits_{k}\left( {\max\limits_{T}\left( {\sum\limits_{t = 1}^{T}{f\left( {B_{{kR}{({j,t})}},B_{{qR}{({j,t})}}} \right)}} \right)} \right)}}$ where k_(j) is an index number of a graph of the plurality of optimal graph; T_(j) is the number of nodes of the k_(j)-th optimal graph with bit pairs matching the B_(qR(j,t)) for the plurality of j-th nodes; and T is a variable between 1 and
 1024. 11. The method according to claim 4, wherein updating the response values and the counters comprises: S _(qR(j,t)) =S _(qR(j,t))+Ψ(j,t)×S _(k) _(i) _(R(j,t)) C _(qR(j,t)) =C _(qR(j,t)+Ψ(j,t)) where S_(qR(j,t)) is the response value of the R(j,t)-th node from the biometric data denoted q, S_(k) _(j) _(R(j,t)) is the response value of the R(j,t)-th node of the k_(j)-th optimal graph, C_(qR(j,t)) is the counter of the R(j,t)-th node from the IrisCode denoted q, and Ψ(j,t) is the weight of the edge between a j-th node and a t-th node of the k_(j)-th optimal graph.
 12. The method according to claim 11, wherein calculating the plurality of real and imaginary components further comprises: normalizing the updated response values of the plurality of nodes with the updated counter values of the plurality of nodes; decomposing the normalized updated response values into the plurality of real components and the plurality of imaginary components; and rescaling the plurality of real and imaginary components by a scaling value.
 13. The method according to claim 12, wherein normalizing the updated response values of the plurality of nodes comprises dividing the updated response values by the updated counter values.
 14. The method according to claim 13 wherein the scaling value is: α/X _(q) where α is a scale factor; and X_(q) is a contrast value of the plurality of real and imaginary components.
 15. The method according to claim 14, wherein $\alpha = {\frac{1}{K}{\sum\limits_{k = 1}^{K}X_{k}}}$ where X_(k), is a contrast value of a k-th image of the plurality of training images; and K is the number of images in the plurality of training images.
 16. The method according to claim 15, wherein $X_{q} = {{{\sum\limits_{j = 1}^{n}{\left\langle {g_{rj},{\hat{I}}_{q}} \right\rangle\xi_{rj}}} + {\sum\limits_{j = 1}^{n}{\left\langle {g_{ij},{\hat{I}}_{q}} \right\rangle\xi_{ij}}}}}$ where Î_(q) is an approximate of the generated image; g_(rj) and g_(ij) respectively are a j-th real filter and a j-th imaginary filter; <g_(rj),Î_(q)> is an inner product between g_(rj) and Î_(q); <g_(ij),Î_(q)> is an inner product between g_(ij) and Î_(q); ξ_(rj) and ξ_(ij) respectively are vectors associating with the inner products <g_(rj),Î_(q)> and <g_(ij),Î_(q)>; and n is the number of the plurality of nodes.
 17. The method according to claim 5, wherein the training filter response of each of the plurality of trained nodes is a Gabor filter response.
 18. The method according to claim 1, wherein the filter response of each of the plurality of nodes is a Gabor filter response.
 19. The method according to claim 1, wherein generating the image further comprises removing artifacts from the generated image.
 20. The method according to claim 1, wherein the biometric data is a feature for iris recognition.
 21. The method according to claim 20, wherein the feature for iris recognition is IrisCode.
 22. The method according to claim 1, wherein the generated image is a reconstruction of an original image, the biometric data being derived from the original image.
 23. An apparatus for generating an image from biometric data, the apparatus comprising a processor configured to: construct a graph of filter responses and bits which define the biometric data; calculate a plurality of real components and a plurality of imaginary components from the biometric data based on the graph; compare the bits with corresponding bits of reference graphs of a biometric database to obtain an optimal graph; update the filter responses based on the optimal graph; and decompress the biometric data based on the updated filter responses to generate an image; wherein the processor is further configured to add the calculated plurality of real and imaginary components to produce the generated image. 